
在 React 中,Router params 的應用對於在不同頁面之間傳遞資料至關重要。今天將介紹如何在 React Router 中使用動態路由,包括建立動態路由、連接路由以及從 URL 中讀取資料的三個主要步驟。
首先,我們需要建立一個新的路由,以便在特定的 URL 條件下呈現相關元件,在這個範例中,我們使用了動態路由 cities/:id,其中 :id 是一個動態參數,表示我們希望在 URL 中動態傳遞的資料。
import City from "./components/City";
function App() {
  return (
    <BrowserRouter>
      <Routes>
		...
        <Route path="cities/:id" element={<City />} />
      </Routes>
    </BrowserRouter>
  );
}
接下來,在元件中建立一個動態連結,以便在點擊時導航到我們剛剛建立的路由 cities/:id。
function CityItem({ city }) {
  const { cityName, id} = city;
  return (
    <li>
      <Link to={`/cities/${id}`}>
        <h3>{cityName}</h3>
      </Link>
    </li>
  );
}
我們將使用 useParams 這一個 Hook 來實現從 URL 中提取 params,這裡的 params 物件就會是我們在路由中指定的參數名稱 id,當我們目前的路由為 /cities/f1d189f2,此時的 id 就是 f1d189f2,因此我們可以透過這個 id 去取得詳細的 API 資料。
import { useParams } from "react-router-dom";
function City() {
  // params 將會是物件的形式 { id: 'XXX' }
  const params = useParams();
  const { id } = params;
}
在這篇文章中,我們認識了動態路由在 React Router 中的應用,透過建立動態路由、連接路由並讀取 URL 中的資料,我們能夠實現在不同頁面之間有效地傳遞資料。